Date de dernière mise à jour du document : 2025-09-28
Ce projet est versionné et hébergé sur GitHub : https://github.com/Jules74660/DM_ROM_JUL.git
Élaboration d’un plan
d’échantillonnage spatialement équilibré (GRTS) pour le Crapaud buffle
(Rhinella marina) en Guadeloupe
Rédigé par Winsback Romain et Roes Julien dans le cadre du module “Stratégies d’échantillonnage et estimation d’abondance des populations” du Master 2 Sciences de l’eau parcours DYNEA (2025-2026) à l’université de Pau et des Pays de l’Adour (campus Montaury).
Lors de l’échantillonnage d’une ressource environnementale, il est important d’appliquer une méthode de sélection probabiliste pour fournir une inférence statistique fiable de l’échantillon à la population (Conn et al. 2016). Cependant, dans de nombreux cas, la ressource environnementale est répartie de manière hétérogène dans l’espace, ce qui peut entraîner une mauvaise couverture spatiale des sites d’échantillonnage. Par conséquent, des méthodes d’échantillonnage spatialement équilibrées ont été développées pour garantir une bonne couverture spatiale des sites d’échantillonnage (Stevens et Olsen 2004).
Parmi les méthodes d’échantillonnage spatialement équilibrées, le Generalized Random Tessellation Stratified (GRTS) est la méthode la plus populaire qui utilise une approche de stratification pour garantir une bonne couverture spatiale des sites d’échantillonnage (Kermorvant et al. 2019). Le GRTS divise l’entité spatiale en une grille ou tessellation de cellules. les cellules sont ensuite regroupées en strates selon un critère (ici le type de sols), ce qui permet de contrôler l’effort d’échantillonnage par type de strates. Les cellules sont finalement randomisées selon un ordre hiérarchique qui préserve la répartition spatiale. les premiers sites sélectionnés couvrent toute la zone de manière équilibrée et si l’on ajoute des sites supplémentaires, l’équilibre spatial est conservé (Stevens et Olsen 2004).
Dans le cadre d’un stage de six mois visant à mettre en place le suivi d’une espèce terrestre en Guadeloupe, l’utilisation du GRTS permet de maximiser la représentativité des principaux types d’habitats terrestres tout en restant réaliste par rapport à la durée limitée du stage. Pour illustrer ce suivi, nous avons choisi le crapaud buffle (Rhinella marina), une espèce invasive originaire d’Amérique centrale et d’Amérique du Sud, désormais présente en Guadeloupe.
Figure 1 : Rhinella marina (crapaud buffle) (source : Angin et al., 2024)
Cette espèce peut avoir des impacts significatifs sur les écosystèmes locaux, notamment par la prédation sur les espèces indigènes et la compétition pour les ressources. Son suivi spatial est donc crucial pour comprendre sa répartition et orienter les actions de gestion.
pacman::p_load(tidyverse, spsurvey, cartography, readxl, viridisLite, sf, DT, leaflet, ggspatial, plotly, stringr, shadowtext)
download.file('http://www.donnees.statistiques.developpement-durable.gouv.fr/donneesCLC/CLC/region/CLC_D971_UTM_SHP.zip', destfile = 'CLC')
unzip('CLC')
La base de données Corine Land Cover (CLC) fournit une classification détaillée de la couverture du territoire français, y compris la Guadeloupe, et permet d’identifier les principaux types d’habitats terrestres. En combinant le GRTS avec les données CLC, il est possible de stratifier l’échantillonnage par type de sol, garantissant que chaque habitat majeur de l’île soit représenté dans l’étude.
# Si ouverture avec le Rproj il n'y pas besoin de préciser le chemin, sinon :
Chemin <- "/..../.../..../...." # préciser le chemin dans lequel les données sont hébérgées
setwd(Chemin)
# Nomenclature
nomenclature <- readxl::read_excel("CLC_D971_UTM_SHP/CLC_nomenclature.xls", sheet = 4)
# Shapefiles de la couverture des sols
# Recensement année 2000
couv2000 <- st_read("CLC_D971_UTM_SHP/CLC00/CLC00_D971_UTM.shp", quiet = TRUE)
# Recensement année 2006
couv2006 <- st_read("CLC_D971_UTM_SHP/CLC06/CLC06_D971_UTM.shp", quiet = TRUE)
# Recensement année 2012
couv2012 <- st_read("CLC_D971_UTM_SHP/CLC12/CLC12_D971_UTM.shp", quiet = TRUE)
Le jeu de données de 2012 a été privilégié ici pour la création du plan d’échantillonnage, car il constitue la représentation la plus récente de la couverture des sols en Guadeloupe. Les 3 jeux de données ont été importés pour comparer visuellement l’évolution de la répartition des types de sols entre 2000, 2006 et 2012, cependant on n’observe pas de changement majeur.
couv2000 <- left_join(couv2000, nomenclature, by = c("CODE_00" = "code_clc_niveau_4"))
couv2006 <- left_join(couv2006, nomenclature, by = c("CODE_06" = "code_clc_niveau_4"))
couv2012 <- left_join(couv2012, nomenclature, by = c("CODE_12" = "code_clc_niveau_4"))
# CREATION des couleurs correspondants aux types de sols
nomenclature$couleur <- rgb(nomenclature$rouge, nomenclature$vert, nomenclature$bleu, maxColorValue = 255)
# ASSOCIER les couleurs aux types de sols dans couv2012
couv2012 <- left_join(couv2012, nomenclature %>% dplyr::select(libelle_fr, couleur), by = "libelle_fr")
# IMPORT de la carte de la Guadeloupe pour le fond de carte
couvcarte <- st_read("CLC_D971_UTM_SHP/CLC12/CLC12_D971_UTM.shp", quiet = TRUE)
# FILTRER pour ne garder que les terres émergées
couvcarte <- couvcarte %>% filter(CODE_12 != "5230")
# CREATION du vecteur de couleurs pour la légende
couleurs_CLC <- setNames(couv2012$couleur, couv2012$libelle_fr)
# LABEL pour légende
couv2012 <- couv2012 %>%
mutate(libelle_code = paste0(libelle_fr, " (", CODE_12, ")"))
couleurs_CLC_code <- setNames(couv2012$couleur, couv2012$libelle_code)
ggplot() +
geom_sf(data = couvcarte, fill = "grey95", color = NA) +
geom_sf(data = couv2012, aes(fill = libelle_code), color = "grey40", linewidth = 0.05) +
theme_minimal() +
scale_fill_manual(
values = couleurs_CLC_code,
name = "Type de sol (Code CLC ≥ 500 ha, hors mers et océans)",) +
annotation_scale(location = "br", width_hint = 0.3) +
annotation_north_arrow(
location = "tl",
which_north = "true",
pad_x = unit(0.2, "cm"),
pad_y = unit(0.2, "cm"),
style = north_arrow_fancy_orienteering) +
labs(
title = "Carte de la couverture des sols en Guadeloupe avec points d’échantillonnage GRTS",
subtitle = "Données Corine Land Cover 2012 et sites tiré du GRTS",
caption = "Source : data.gouv.fr") +
theme(
legend.position = "right",
legend.key.size = unit(0.6, "cm"),
legend.text = element_text(size = 7),
legend.title = element_text(size = 9, face = "bold"),
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10))
couv2012 <- couv2012 %>%
group_by(CODE_12, libelle_fr) %>%
summarise(AREA_HA = sum(AREA_HA, na.rm = TRUE), .groups = "drop") %>%
filter(AREA_HA >= 500) %>%
filter(CODE_12 != "5230")
La population statistique est constituée des 13 types de sols terrestres (hors mers et océans) de plus de 500 ha (cumulés par type de sol) recensés en Guadeloupe selon les données Corine Land Cover 2012 (visibles dans le tableau ci-dessous).
# FORMATAGE des données pour le tableau
couvtable <- couv2012 %>%
dplyr::select(CODE_12, libelle_fr, AREA_HA) %>% st_drop_geometry() %>% mutate(
AREA_HA = round(AREA_HA, 0), "Type de sol" = libelle_fr) %>%
dplyr::select("Type de sol", "Code CLC" = CODE_12, "Surface (ha)" = AREA_HA)
# TABLEAU des types de sols (TYPE DE SOL / CODE CLC / SURFACE CUMULÉ en HA)
DT::datatable(
couvtable,
options = list(
scrollX = TRUE,
autoWidth = FALSE,
pageLength = 13,
columnDefs = list(list(width = '250px', targets = "_all"))),
width = "100%",
height = "auto",
rownames = FALSE) %>%
formatStyle(
"Type de sol",
backgroundColor = styleEqual(names(couleurs_CLC), couleurs_CLC),
color = "black",
fontWeight = "bold")
library(spsurvey)
On utilise le package « spsurvey » qui contient la fonction permettant d’effectuer un tirage par GRTS.
codes <- c("1120","1210","2112","2222","2310","2420","2430",
"3111","3112","3220","3230","3240","4110")
L’objet « codes » contient les codes correspondant à la nomenclature Corine Land Cover des 13 habitats respectant les critères de sélection évoqués plus tôt (habitat terrestre d’une surface cumulée supérieure à 500 ha).
n_base <- setNames(rep(3, length(codes)), codes)
GRTSpts <- grts(
sframe = couv2012,
n_base = n_base,
stratum_var = "CODE_12",
DesignID = "DM_Rom_Jul")
La fonction grts() permet de tirer aléatoirement des points par l’intermédiaire de la méthode GRTS, en spécifiant la population statistique (sframe), le nombre de sites à tirer (n_base) et le critère de stratification (stratum_var). Ici, on crée donc un objet « n_base » qui permet de spécifier que l’on souhaite échantillonner 3 sites par habitat, et on stocke l’ensemble des points dans l’objet « GRTSpts ».
La décision a été prise de tirer 3 points par habitat pour garantir une bonne représentativité de chaque type de sol, tout en tenant compte des contraintes logistiques et temporelles liées à la durée limitée du stage. Ce choix permet d’obtenir un échantillon suffisamment diversifié pour analyser la présence du crapaud buffle dans différents environnements, tout en restant réaliste quant à la capacité d’échantillonnage sur une période de six mois (39 points au total).
st_write(GRTS_sf, "tirage_GRTS.shp", delete_dsn = TRUE)
Grâce à la fonction st_as_sf(), on transforme le tableau de points obtenus en objet spatial de type sf manipulable sous R.
GRTS_sf <- st_as_sf(GRTSpts$sites_base, coords = c("X","Y"), crs = st_crs(couv2012))
st_write(GRTS_sf, "tirage_GRTS.shp", delete_dsn = TRUE)
La fonction st_write() permet de convertir cet objet spatial en un fichier .shp exploitable notamment sous QGIS.
GRTS_df <- GRTSpts$sites_base
write.csv(GRTS_df, "tirage_GRTS.csv", row.names = FALSE)
On exporte également le tableau du tirage effectué pour manipuler le même tirage GRTS sous R.
GRTS_df <- read_csv("tirage_GRTS.csv") %>%
dplyr::select(lon_WGS84, lat_WGS84, libelle_fr)
GRTS_df <- GRTS_df %>% mutate(
Identifiant = paste0("site_", row_number())) %>%
dplyr::select(Identifiant, lon_WGS84, lat_WGS84, libelle_fr) %>%
rename(Longitude = lon_WGS84,Latitude = lat_WGS84,`Type de sol (code CLC)` = libelle_fr, siteID = Identifiant)
GRTS_sf <- st_as_sf(GRTS_df, coords = c("Longitude", "Latitude"), crs = 4326)
GRTS_sf <- st_transform(GRTS_sf, st_crs(couv2012))
couv2012 <- couv2012 %>%
mutate(libelle_code = str_wrap(paste0(libelle_fr, " (", CODE_12, ")")))
#GRTS_sf <- GRTS_sf %>%
# left_join(select(GRTS_df, siteID, TypeSol = `Type de sol (code CLC)`), by = "siteID")
GRTS_sf <- GRTS_sf %>% mutate(siteID = str_remove(siteID, "site_"))
couv2012 <- couv2012 %>%
mutate(libelle_code = str_replace_all(libelle_code, "\n", " "))
ggplot() +
geom_sf(data = couvcarte, fill = "grey95", color = NA) +
geom_sf(data = couv2012, aes(fill = libelle_code), color = "grey40", linewidth = 0.05) +
geom_sf(data = GRTS_sf,
aes(text = paste0("Site : ", siteID, "<br>Type de sol : ", `Type de sol (code CLC)`)),
color = "white", size = 3, shape = 21, fill = "black") +
geom_shadowtext(
data = GRTS_sf,
aes(geometry = geometry, label = siteID),
stat = "sf_coordinates",
nudge_x = 2000,
nudge_y = 0,
size = 2.3,
color = "black",
bg.color = "white",
bg.r = 0.15
) +
theme_minimal() +
scale_fill_manual(
values = couleurs_CLC_code,
name = "Type de sol (Code CLC ≥ 500 ha, hors mers et océans)",) +
annotation_scale(location = "br", width_hint = 0.3) +
annotation_north_arrow(
location = "tl",
which_north = "true",
pad_x = unit(0.2, "cm"),
pad_y = unit(0.2, "cm"),
style = north_arrow_fancy_orienteering) +
labs(
title = "Carte de la couverture des sols en Guadeloupe avec points d’échantillonnage GRTS",
subtitle = "Données Corine Land Cover 2012 et sites tiré du GRTS",
caption = "Source : data.gouv.fr") +
theme(
legend.position = "right",
legend.key.size = unit(0.6, "cm"),
legend.text = element_text(size = 7),
legend.title = element_text(size = 9, face = "bold"),
plot.title = element_text(face = "bold", size = 14),
plot.subtitle = element_text(size = 10),
axis.title = element_blank())
Le plan d’échantillonnage mis en place repose sur une stratification par type de couverture de sol et un nombre égal de sites par habitat. En effet, l’effort d’échantillonnage est uniforme au sein des 13 habitats, quelle que soit leur surface. Le choix de cette méthode peut entraîner un sous-échantillonnage des habitats les plus étendus, biaisant ainsi la probabilité de détecter l’espèce dans les habitats majeurs de l’île. De plus, les habitats de moins de 500 ha sont exclus. Même s’il est précisé que l’objectif du stage est d’obtenir « une base de données fiable concernant la présence de l’espèce dans chaque type d’habitat majoritaire de l’île », c’est sans doute le choix de cette méthode qui contraint la structure à se concentrer seulement sur les habitats majoritaires. La faible superficie d’un habitat traduit rarement un faible intérêt écologique. Enfin, la stratification se fait uniquement sur le type de sol, alors que la présence d’une espèce comme le crapaud buffle peut dépendre de multiples facteurs écologiques qui ne sont pas pris en compte ici : disponibilité en eau, humidité locale, végétation, connectivité des sites, pressions anthropiques…
En prenant en compte ces limites, il serait possible de conserver la stratification par type de sol tout en adaptant le nombre de sites à la superficie de chaque habitat. Ainsi, les habitats plus étendus recevraient davantage de sites, ce qui permettrait de mieux capturer leur hétérogénéité écologique, tandis que les habitats plus petits seraient toujours représentés par un nombre minimum de sites. Ce protocole proportionnel améliorerait la fiabilité de la base de données tout en limitant les biais liés à la variation des facteurs environnementaux.
Angin, B., Questel, K., Sculfort, O., Courtois, E. A., Massary, J.-C., Frétey, T., & Dewynter, M. (2024) Les Amphibiens et les Reptiles de la Guadeloupe : identification, répartition et bibliographie.
Conn, P. B., Moreland, E. E., Regehr, E. V., Richmond, E. L., Cameron, M. F., & Boveng, P. L. (2016). Using simulation to evaluate wildlife survey designs: polar bears and seals in the Chukchi Sea. Royal Society Open Science, 3, 150561. https://doi.org/10.1098/rsos.150561.
Don L Stevens Jr. & Anthony R Olsen (2004) Spatially Balanced Sampling of Natural Resources, Journal of the American Statistical Association, 99:465, 262-278. http://dx.doi.org/10.1198/016214504000000250
Kermorvant C, D’Amico F, Bru N, Caill-Milly N, Robertson B. Spatially balanced sampling designs for environmental surveys. Environ Monit Assess. 2019 Jul 30;191(8):524. doi: 10.1007/s10661-019-7666-y. PMID: 31363924.